8981. Индексы пробелов

 

Найдите индексы первого и последнего пробела в заданной строке. Нумерация символов начинается с индекса 0.

 

Вход. Одна строка, содержащая только латинские буквы, знаки препинания и пробелы.

 

Выход. Выведите два числа: индекс первого пробела и индекс последнего пробела в строке. Если пробелов в строке нет, выведите -1.

 

Пример входа 1

Пример выхода 1

I am programming on Python.

1 19

 

 

Пример входа 2

Пример выхода 2

abrakadabra

-1

 

 

РЕШЕНИЕ

строки

 

Анализ алгоритма

Объявим две переменные:

·     a – индекс первого пробела;

·     b – индекс последнего пробела;

Инициализируем их значениями: a = b = -1. Далее перебираем символы строки s. Если текущий символ является пробелом (si = ‘ ‘), то:

·        Если пробелов до этого не было (a = -1), устанавливаем a = i;

·        В любом случае обновляем b = i;

После завершения перебора:

·        Если пробелов в строке нет (a = -1), выводим -1.

·        В противном случае выводим индексы первого и последнего пробела (a и b).

 

Реализация алгоритма

Читаем входную строку.

 

getline(cin, s);

 

Инициализируем переменные a и b – индексы первого и последнего пробелов.

 

a = b = -1;

for (i = 0; i < s.size(); i++)

 

Если текущий символ si пробел, то:

·        если пробелов до этого не было (a = -1), устанавливаем a = i;

·        обновляем b = i;

 

  if (s[i] == ' ')

  {

    if (a == -1) a = i;

    b = i;

  }

 

Если пробелов в строке нет (a = -1), выводим -1. Иначе выводим индексы первого и последнего пробела.

 

if (a == -1) printf("-1\n");

else printf("%d %d\n", a, b);

 

Python реализация

Читаем входную строку.

 

s = input()

 

Инициализируем переменные a и b – индексы первого и последнего пробелов.

 

a = b = -1

for i in range(len(s)):

 

Если текущий символ si пробел, то:

·        если пробелов до этого не было (a = -1), устанавливаем a = i;

·        обновляем b = i;

 

  if s[i] == ' ':

    if a == -1: a = i

    b = i

 

Если пробелов в строке нет (a = -1), выводим -1. Иначе выводим индексы первого и последнего пробела.

 

if a == -1:

  print("-1")

else:

  print(a, b)

 

Python реализация – find, rfind

Читаем входную строку.

 

s = input()

 

Находим индексы первого и последнего пробела.

·         Функция find возвращает индекс первого вхождения подстроки в строке.

·         Функция rfind возвращает индекс последнего вхождения подстроки в строке.

Обе функции возвращают -1, если подстрока не найдена.

 

a = s.find(' ')

b = s.rfind(' ')

 

Если пробелов в строке нет (a = -1), выводим -1. Иначе выводим индексы первого и последнего пробела.

 

if a == -1:

  print("-1")

else:

  print(a, b)